<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>eccodes: eccodes Module Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">eccodes
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>C&#160;Interface</span></a></li>
      <li><a href="classeccodes.html"><span>F90&#160;Interface</span></a></li>
      <li><a href="namespaces.html"><span>Python&#160;Interface</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">eccodes Module Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Module eccodes<br/>
 This is the <b>Fortran90</b> interface for <a class="el" href="namespaceec_codes.html" title="This package is the Python interface to ecCodes. ">ecCodes</a>.  
 <a href="classeccodes.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Types</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">interface &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceeccodes_1_1codes__get.html">codes_get</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value for a key from a grib message.  <a href="interfaceeccodes_1_1codes__get.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">interface &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceeccodes_1_1codes__get__element.html">codes_get_element</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a value of specified index from an array key.  <a href="interfaceeccodes_1_1codes__get__element.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">interface &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceeccodes_1_1codes__get__message__size.html">codes_get_message_size</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of a coded message.  <a href="interfaceeccodes_1_1codes__get__message__size.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">interface &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceeccodes_1_1codes__get__size.html">codes_get_size</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of an array key.  <a href="interfaceeccodes_1_1codes__get__size.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">interface &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceeccodes_1_1codes__grib__find__nearest.html">codes_grib_find_nearest</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the nearest point/points of a given latitude/longitude point.  <a href="interfaceeccodes_1_1codes__grib__find__nearest.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">interface &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceeccodes_1_1codes__grib__get__data.html">codes_grib_get_data</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get latitude/longitude and data values.  <a href="interfaceeccodes_1_1codes__grib__get__data.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">interface &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceeccodes_1_1codes__index__get.html">codes_index_get</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the distinct values of the key in argument contained in the index.  <a href="interfaceeccodes_1_1codes__index__get.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">interface &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceeccodes_1_1codes__index__get__size.html">codes_index_get_size</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of distinct values of the key in argument contained in the index.  <a href="interfaceeccodes_1_1codes__index__get__size.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">interface &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceeccodes_1_1codes__index__select.html">codes_index_select</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select the message subset with key==value.  <a href="interfaceeccodes_1_1codes__index__select.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">interface &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceeccodes_1_1codes__new__from__message.html">codes_new_from_message</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new message in memory from an integer or character array containting the coded message.  <a href="interfaceeccodes_1_1codes__new__from__message.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">interface &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceeccodes_1_1codes__read__bytes.html">codes_read_bytes</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads nbytes bytes into the buffer from a file opened with codes_open_file.  <a href="interfaceeccodes_1_1codes__read__bytes.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">interface &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceeccodes_1_1codes__read__from__file.html">codes_read_from_file</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a message in the buffer array from the file opened with codes_open_file.  <a href="interfaceeccodes_1_1codes__read__from__file.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">interface &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceeccodes_1_1codes__set.html">codes_set</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value for a key in a grib message.  <a href="interfaceeccodes_1_1codes__set.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">interface &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceeccodes_1_1codes__write__bytes.html">codes_write_bytes</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write nbytes bytes from the buffer in a file opened with codes_open_file.  <a href="interfaceeccodes_1_1codes__write__bytes.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa85273eb59a545d73f7e3a48516fd5f9"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#aa85273eb59a545d73f7e3a48516fd5f9">codes_set_missing</a> (id, key, status)</td></tr>
<tr class="memdesc:aa85273eb59a545d73f7e3a48516fd5f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrapper for eccodes.  <a href="#aa85273eb59a545d73f7e3a48516fd5f9">More...</a><br/></td></tr>
<tr class="separator:aa85273eb59a545d73f7e3a48516fd5f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f52ecf1abe0a68a32517fe2a0d08058"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a5f52ecf1abe0a68a32517fe2a0d08058">codes_index_create</a> (indexid, filename, keys, status)</td></tr>
<tr class="memdesc:a5f52ecf1abe0a68a32517fe2a0d08058"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new index form a file.  <a href="#a5f52ecf1abe0a68a32517fe2a0d08058">More...</a><br/></td></tr>
<tr class="separator:a5f52ecf1abe0a68a32517fe2a0d08058"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af89d3c57b15bdbd00241358a10b836a8"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#af89d3c57b15bdbd00241358a10b836a8">codes_index_add_file</a> (indexid, filename, status)</td></tr>
<tr class="memdesc:af89d3c57b15bdbd00241358a10b836a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a file to an index.  <a href="#af89d3c57b15bdbd00241358a10b836a8">More...</a><br/></td></tr>
<tr class="separator:af89d3c57b15bdbd00241358a10b836a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d2104143f36bdfb5c7cccb9b56ae3f0"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a0d2104143f36bdfb5c7cccb9b56ae3f0">codes_index_get_size_long</a> (indexid, key, size, status)</td></tr>
<tr class="memdesc:a0d2104143f36bdfb5c7cccb9b56ae3f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of distinct values of the key in argument contained in the index.  <a href="#a0d2104143f36bdfb5c7cccb9b56ae3f0">More...</a><br/></td></tr>
<tr class="separator:a0d2104143f36bdfb5c7cccb9b56ae3f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb1c3a999e4726895a94acb9b0de518c"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#aeb1c3a999e4726895a94acb9b0de518c">codes_index_get_size_int</a> (indexid, key, size, status)</td></tr>
<tr class="memdesc:aeb1c3a999e4726895a94acb9b0de518c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of distinct values of the key in argument contained in the index.  <a href="#aeb1c3a999e4726895a94acb9b0de518c">More...</a><br/></td></tr>
<tr class="separator:aeb1c3a999e4726895a94acb9b0de518c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26cf731cfda4b350500d8520ea674341"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a26cf731cfda4b350500d8520ea674341">codes_index_get_int</a> (indexid, key, values, status)</td></tr>
<tr class="memdesc:a26cf731cfda4b350500d8520ea674341"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the distinct values of the key in argument contained in the index.  <a href="#a26cf731cfda4b350500d8520ea674341">More...</a><br/></td></tr>
<tr class="separator:a26cf731cfda4b350500d8520ea674341"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa9bf87d988de7eb04a9de9982e6112f"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#afa9bf87d988de7eb04a9de9982e6112f">codes_index_get_long</a> (indexid, key, values, status)</td></tr>
<tr class="memdesc:afa9bf87d988de7eb04a9de9982e6112f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the distinct values of the key in argument contained in the index.  <a href="#afa9bf87d988de7eb04a9de9982e6112f">More...</a><br/></td></tr>
<tr class="separator:afa9bf87d988de7eb04a9de9982e6112f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedc38b28a7a27b5e042f7a5a17c73001"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#aedc38b28a7a27b5e042f7a5a17c73001">codes_index_get_real8</a> (indexid, key, values, status)</td></tr>
<tr class="memdesc:aedc38b28a7a27b5e042f7a5a17c73001"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the distinct values of the key in argument contained in the index.  <a href="#aedc38b28a7a27b5e042f7a5a17c73001">More...</a><br/></td></tr>
<tr class="separator:aedc38b28a7a27b5e042f7a5a17c73001"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5eb8fbe2de7d547bc92baddaf77adf1"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#ae5eb8fbe2de7d547bc92baddaf77adf1">codes_index_get_string</a> (indexid, key, values, status)</td></tr>
<tr class="memdesc:ae5eb8fbe2de7d547bc92baddaf77adf1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the distinct values of the key in argument contained in the index.  <a href="#ae5eb8fbe2de7d547bc92baddaf77adf1">More...</a><br/></td></tr>
<tr class="separator:ae5eb8fbe2de7d547bc92baddaf77adf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a500fe1c101af888362bb60a94c68085e"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a500fe1c101af888362bb60a94c68085e">codes_index_select_string</a> (indexid, key, value, status)</td></tr>
<tr class="memdesc:a500fe1c101af888362bb60a94c68085e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select the message subset with key==value.  <a href="#a500fe1c101af888362bb60a94c68085e">More...</a><br/></td></tr>
<tr class="separator:a500fe1c101af888362bb60a94c68085e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac84dca14749c6c8f7b1b32dbcb8c8f88"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#ac84dca14749c6c8f7b1b32dbcb8c8f88">codes_index_select_int</a> (indexid, key, value, status)</td></tr>
<tr class="memdesc:ac84dca14749c6c8f7b1b32dbcb8c8f88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select the message subset with key==value.  <a href="#ac84dca14749c6c8f7b1b32dbcb8c8f88">More...</a><br/></td></tr>
<tr class="separator:ac84dca14749c6c8f7b1b32dbcb8c8f88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6acd94d169fc462c5babb5d654c07612"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a6acd94d169fc462c5babb5d654c07612">codes_index_select_long</a> (indexid, key, value, status)</td></tr>
<tr class="memdesc:a6acd94d169fc462c5babb5d654c07612"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select the message subset with key==value.  <a href="#a6acd94d169fc462c5babb5d654c07612">More...</a><br/></td></tr>
<tr class="separator:a6acd94d169fc462c5babb5d654c07612"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1a4e9f83a13d8ce9b046f141ee990cd"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#ae1a4e9f83a13d8ce9b046f141ee990cd">codes_index_select_real8</a> (indexid, key, value, status)</td></tr>
<tr class="memdesc:ae1a4e9f83a13d8ce9b046f141ee990cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select the message subset with key==value.  <a href="#ae1a4e9f83a13d8ce9b046f141ee990cd">More...</a><br/></td></tr>
<tr class="separator:ae1a4e9f83a13d8ce9b046f141ee990cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2852e5519e2ff8596e461986b99092d7"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a2852e5519e2ff8596e461986b99092d7">codes_new_from_index</a> (indexid, msgid, status)</td></tr>
<tr class="memdesc:a2852e5519e2ff8596e461986b99092d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new handle from an index after having selected the key values.  <a href="#a2852e5519e2ff8596e461986b99092d7">More...</a><br/></td></tr>
<tr class="separator:a2852e5519e2ff8596e461986b99092d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16dfcaea7b7c6c77794914d0570f5bc9"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a16dfcaea7b7c6c77794914d0570f5bc9">codes_index_read</a> (indexid, filename, status)</td></tr>
<tr class="memdesc:a16dfcaea7b7c6c77794914d0570f5bc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load an index file previously created with <a class="el" href="classeccodes.html#afd0c12a42f60fe16eabc8b0fca41ff05">codes_index_write</a>.  <a href="#a16dfcaea7b7c6c77794914d0570f5bc9">More...</a><br/></td></tr>
<tr class="separator:a16dfcaea7b7c6c77794914d0570f5bc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd0c12a42f60fe16eabc8b0fca41ff05"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#afd0c12a42f60fe16eabc8b0fca41ff05">codes_index_write</a> (indexid, filename, status)</td></tr>
<tr class="memdesc:afd0c12a42f60fe16eabc8b0fca41ff05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saves an index to a file for later reuse.  <a href="#afd0c12a42f60fe16eabc8b0fca41ff05">More...</a><br/></td></tr>
<tr class="separator:afd0c12a42f60fe16eabc8b0fca41ff05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fba1de775308d8a1f0c035c51e3a42d"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a8fba1de775308d8a1f0c035c51e3a42d">codes_index_release</a> (indexid, status)</td></tr>
<tr class="memdesc:a8fba1de775308d8a1f0c035c51e3a42d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete the index.  <a href="#a8fba1de775308d8a1f0c035c51e3a42d">More...</a><br/></td></tr>
<tr class="separator:a8fba1de775308d8a1f0c035c51e3a42d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28594e26f2f4b92b9c60e943dd8e1be3"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a28594e26f2f4b92b9c60e943dd8e1be3">codes_open_file</a> (ifile, filename, mode, status)</td></tr>
<tr class="memdesc:a28594e26f2f4b92b9c60e943dd8e1be3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Open a file according to a mode.  <a href="#a28594e26f2f4b92b9c60e943dd8e1be3">More...</a><br/></td></tr>
<tr class="separator:a28594e26f2f4b92b9c60e943dd8e1be3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30dcd3a6d9d4b084f1dc9d617927b99a"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a30dcd3a6d9d4b084f1dc9d617927b99a">codes_read_bytes_char</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:a30dcd3a6d9d4b084f1dc9d617927b99a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads nbytes bytes into the buffer from a file opened with codes_open_file.  <a href="#a30dcd3a6d9d4b084f1dc9d617927b99a">More...</a><br/></td></tr>
<tr class="separator:a30dcd3a6d9d4b084f1dc9d617927b99a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea71591e62a4a6f42682ceb5979c0631"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#aea71591e62a4a6f42682ceb5979c0631">codes_read_bytes_char_size_t</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:aea71591e62a4a6f42682ceb5979c0631"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads nbytes bytes into the buffer from a file opened with codes_open_file.  <a href="#aea71591e62a4a6f42682ceb5979c0631">More...</a><br/></td></tr>
<tr class="separator:aea71591e62a4a6f42682ceb5979c0631"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b75e479138c6fe2b49cacef123a1c8e"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a0b75e479138c6fe2b49cacef123a1c8e">codes_read_bytes_int4</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:a0b75e479138c6fe2b49cacef123a1c8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads nbytes bytes into the buffer from a file opened with codes_open_file.  <a href="#a0b75e479138c6fe2b49cacef123a1c8e">More...</a><br/></td></tr>
<tr class="separator:a0b75e479138c6fe2b49cacef123a1c8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1be70ac4cc7c2c5775e3bc6b607c4df"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#ad1be70ac4cc7c2c5775e3bc6b607c4df">codes_read_bytes_int4_size_t</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:ad1be70ac4cc7c2c5775e3bc6b607c4df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads nbytes bytes into the buffer from a file opened with codes_open_file.  <a href="#ad1be70ac4cc7c2c5775e3bc6b607c4df">More...</a><br/></td></tr>
<tr class="separator:ad1be70ac4cc7c2c5775e3bc6b607c4df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19f70122369224f1ef3513bf7f351e86"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a19f70122369224f1ef3513bf7f351e86">codes_read_bytes_real4</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:a19f70122369224f1ef3513bf7f351e86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads nbytes bytes into the buffer from a file opened with codes_open_file.  <a href="#a19f70122369224f1ef3513bf7f351e86">More...</a><br/></td></tr>
<tr class="separator:a19f70122369224f1ef3513bf7f351e86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bac4f78f245e52303e85d2ee142d073"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a9bac4f78f245e52303e85d2ee142d073">codes_read_bytes_real4_size_t</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:a9bac4f78f245e52303e85d2ee142d073"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads nbytes bytes into the buffer from a file opened with codes_open_file.  <a href="#a9bac4f78f245e52303e85d2ee142d073">More...</a><br/></td></tr>
<tr class="separator:a9bac4f78f245e52303e85d2ee142d073"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e1e0bb73d3fafe62685a3f7191334e4"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a4e1e0bb73d3fafe62685a3f7191334e4">codes_read_bytes_real8</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:a4e1e0bb73d3fafe62685a3f7191334e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads nbytes bytes into the buffer from a file opened with codes_open_file.  <a href="#a4e1e0bb73d3fafe62685a3f7191334e4">More...</a><br/></td></tr>
<tr class="separator:a4e1e0bb73d3fafe62685a3f7191334e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adec76dd3ecf49b71ded2545054828c3d"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#adec76dd3ecf49b71ded2545054828c3d">codes_read_bytes_real8_size_t</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:adec76dd3ecf49b71ded2545054828c3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads nbytes bytes into the buffer from a file opened with codes_open_file.  <a href="#adec76dd3ecf49b71ded2545054828c3d">More...</a><br/></td></tr>
<tr class="separator:adec76dd3ecf49b71ded2545054828c3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b5b61cc34b32aae4c3f2deeacbc50ae"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a7b5b61cc34b32aae4c3f2deeacbc50ae">codes_read_from_file_int4</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:a7b5b61cc34b32aae4c3f2deeacbc50ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a message in the buffer array from the file opened with codes_open_file.  <a href="#a7b5b61cc34b32aae4c3f2deeacbc50ae">More...</a><br/></td></tr>
<tr class="separator:a7b5b61cc34b32aae4c3f2deeacbc50ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa04bacd625a2a87d7e490c0361643da3"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#aa04bacd625a2a87d7e490c0361643da3">codes_read_from_file_int4_size_t</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:aa04bacd625a2a87d7e490c0361643da3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a message in the buffer array from the file opened with codes_open_file.  <a href="#aa04bacd625a2a87d7e490c0361643da3">More...</a><br/></td></tr>
<tr class="separator:aa04bacd625a2a87d7e490c0361643da3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4182b2add068f538b335c8efd1a8d5f"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#aa4182b2add068f538b335c8efd1a8d5f">codes_read_from_file_real4</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:aa4182b2add068f538b335c8efd1a8d5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a message in the buffer array from the file opened with codes_open_file.  <a href="#aa4182b2add068f538b335c8efd1a8d5f">More...</a><br/></td></tr>
<tr class="separator:aa4182b2add068f538b335c8efd1a8d5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae866f7aa5270100094390b465e953975"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#ae866f7aa5270100094390b465e953975">codes_read_from_file_real4_size_t</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:ae866f7aa5270100094390b465e953975"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a message in the buffer array from the file opened with codes_open_file.  <a href="#ae866f7aa5270100094390b465e953975">More...</a><br/></td></tr>
<tr class="separator:ae866f7aa5270100094390b465e953975"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ff542236ca5d1bdeb7192c5c8eca94f"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a2ff542236ca5d1bdeb7192c5c8eca94f">codes_read_from_file_real8</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:a2ff542236ca5d1bdeb7192c5c8eca94f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a message in the buffer array from the file opened with codes_open_file.  <a href="#a2ff542236ca5d1bdeb7192c5c8eca94f">More...</a><br/></td></tr>
<tr class="separator:a2ff542236ca5d1bdeb7192c5c8eca94f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8fff9495aaf984fb909367290b45591"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#ab8fff9495aaf984fb909367290b45591">codes_read_from_file_real8_size_t</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:ab8fff9495aaf984fb909367290b45591"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a message in the buffer array from the file opened with codes_open_file.  <a href="#ab8fff9495aaf984fb909367290b45591">More...</a><br/></td></tr>
<tr class="separator:ab8fff9495aaf984fb909367290b45591"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab84434f52a4a41e68bf3103c392482ae"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#ab84434f52a4a41e68bf3103c392482ae">codes_read_from_file_char</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:ab84434f52a4a41e68bf3103c392482ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a message in the buffer array from the file opened with codes_open_file.  <a href="#ab84434f52a4a41e68bf3103c392482ae">More...</a><br/></td></tr>
<tr class="separator:ab84434f52a4a41e68bf3103c392482ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ca8b8009071657b338508a3d6709b8d"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a9ca8b8009071657b338508a3d6709b8d">codes_read_from_file_char_size_t</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:a9ca8b8009071657b338508a3d6709b8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a message in the buffer array from the file opened with codes_open_file.  <a href="#a9ca8b8009071657b338508a3d6709b8d">More...</a><br/></td></tr>
<tr class="separator:a9ca8b8009071657b338508a3d6709b8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acdb3a889fbd731811821d95d6126e41a"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#acdb3a889fbd731811821d95d6126e41a">codes_write_bytes_char</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:acdb3a889fbd731811821d95d6126e41a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write nbytes bytes from the buffer in a file opened with codes_open_file.  <a href="#acdb3a889fbd731811821d95d6126e41a">More...</a><br/></td></tr>
<tr class="separator:acdb3a889fbd731811821d95d6126e41a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02dd901fef7e6a4cb8ab50ade61e6a66"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a02dd901fef7e6a4cb8ab50ade61e6a66">codes_write_bytes_char_size_t</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:a02dd901fef7e6a4cb8ab50ade61e6a66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write nbytes bytes from the buffer in a file opened with codes_open_file.  <a href="#a02dd901fef7e6a4cb8ab50ade61e6a66">More...</a><br/></td></tr>
<tr class="separator:a02dd901fef7e6a4cb8ab50ade61e6a66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe46cbe07d6a64845bf07e21caa3ae94"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#abe46cbe07d6a64845bf07e21caa3ae94">codes_write_bytes_int4</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:abe46cbe07d6a64845bf07e21caa3ae94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write nbytes bytes from the buffer in a file opened with codes_open_file.  <a href="#abe46cbe07d6a64845bf07e21caa3ae94">More...</a><br/></td></tr>
<tr class="separator:abe46cbe07d6a64845bf07e21caa3ae94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a771149b4e451839ed7713540de92ce27"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a771149b4e451839ed7713540de92ce27">codes_write_bytes_int4_size_t</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:a771149b4e451839ed7713540de92ce27"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write nbytes bytes from the buffer in a file opened with codes_open_file.  <a href="#a771149b4e451839ed7713540de92ce27">More...</a><br/></td></tr>
<tr class="separator:a771149b4e451839ed7713540de92ce27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f69c7e70900ace352970851a4ee5267"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a7f69c7e70900ace352970851a4ee5267">codes_write_bytes_real4</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:a7f69c7e70900ace352970851a4ee5267"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write nbytes bytes from the buffer in a file opened with codes_open_file.  <a href="#a7f69c7e70900ace352970851a4ee5267">More...</a><br/></td></tr>
<tr class="separator:a7f69c7e70900ace352970851a4ee5267"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7467f8b7c399f5579bd4be244de100dc"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a7467f8b7c399f5579bd4be244de100dc">codes_write_bytes_real4_size_t</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:a7467f8b7c399f5579bd4be244de100dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write nbytes bytes from the buffer in a file opened with codes_open_file.  <a href="#a7467f8b7c399f5579bd4be244de100dc">More...</a><br/></td></tr>
<tr class="separator:a7467f8b7c399f5579bd4be244de100dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabda087d7f8ba266b0b9f307270f876a"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#aabda087d7f8ba266b0b9f307270f876a">codes_write_bytes_real8</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:aabda087d7f8ba266b0b9f307270f876a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write nbytes bytes from the buffer in a file opened with codes_open_file.  <a href="#aabda087d7f8ba266b0b9f307270f876a">More...</a><br/></td></tr>
<tr class="separator:aabda087d7f8ba266b0b9f307270f876a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d0be96a6b529f7e0b8079318a5376bb"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a2d0be96a6b529f7e0b8079318a5376bb">codes_write_bytes_real8_size_t</a> (ifile, buffer, nbytes, status)</td></tr>
<tr class="memdesc:a2d0be96a6b529f7e0b8079318a5376bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write nbytes bytes from the buffer in a file opened with codes_open_file.  <a href="#a2d0be96a6b529f7e0b8079318a5376bb">More...</a><br/></td></tr>
<tr class="separator:a2d0be96a6b529f7e0b8079318a5376bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a436a01aabf91cdbb4c5902a5d1a2886e"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a436a01aabf91cdbb4c5902a5d1a2886e">codes_close_file</a> (ifile, status)</td></tr>
<tr class="memdesc:a436a01aabf91cdbb4c5902a5d1a2886e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close a file.  <a href="#a436a01aabf91cdbb4c5902a5d1a2886e">More...</a><br/></td></tr>
<tr class="separator:a436a01aabf91cdbb4c5902a5d1a2886e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a09420f86caf79873b2fb067e360049"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a0a09420f86caf79873b2fb067e360049">codes_count_in_file</a> (ifile, n, status)</td></tr>
<tr class="memdesc:a0a09420f86caf79873b2fb067e360049"><td class="mdescLeft">&#160;</td><td class="mdescRight">Counts the messages in a file.  <a href="#a0a09420f86caf79873b2fb067e360049">More...</a><br/></td></tr>
<tr class="separator:a0a09420f86caf79873b2fb067e360049"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5533c6fb8bd7d8f622c89484b7bbdfb6"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a5533c6fb8bd7d8f622c89484b7bbdfb6">codes_new_from_file</a> (ifile, msgid, product_kind, status)</td></tr>
<tr class="memdesc:a5533c6fb8bd7d8f622c89484b7bbdfb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load in memory a message from a file.  <a href="#a5533c6fb8bd7d8f622c89484b7bbdfb6">More...</a><br/></td></tr>
<tr class="separator:a5533c6fb8bd7d8f622c89484b7bbdfb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa468943e1c669487375b2e3d46ff84b1"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#aa468943e1c669487375b2e3d46ff84b1">codes_any_new_from_file</a> (ifile, msgid, status)</td></tr>
<tr class="memdesc:aa468943e1c669487375b2e3d46ff84b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load in memory a message from a file.  <a href="#aa468943e1c669487375b2e3d46ff84b1">More...</a><br/></td></tr>
<tr class="separator:aa468943e1c669487375b2e3d46ff84b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a21cb68f0d5058a63a4ba92a938fd27"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a7a21cb68f0d5058a63a4ba92a938fd27">codes_grib_new_from_file</a> (ifile, gribid, status)</td></tr>
<tr class="memdesc:a7a21cb68f0d5058a63a4ba92a938fd27"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load in memory a GRIB message from a file.  <a href="#a7a21cb68f0d5058a63a4ba92a938fd27">More...</a><br/></td></tr>
<tr class="separator:a7a21cb68f0d5058a63a4ba92a938fd27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94050d64954482cd82ea6f007fdc9ac0"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a94050d64954482cd82ea6f007fdc9ac0">codes_bufr_new_from_file</a> (ifile, bufrid, status)</td></tr>
<tr class="memdesc:a94050d64954482cd82ea6f007fdc9ac0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load in memory a BUFR message from a file.  <a href="#a94050d64954482cd82ea6f007fdc9ac0">More...</a><br/></td></tr>
<tr class="separator:a94050d64954482cd82ea6f007fdc9ac0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9734463b78e04c3e803acb25d3314436"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a9734463b78e04c3e803acb25d3314436">codes_new_from_message_char</a> (msgid, message, status)</td></tr>
<tr class="memdesc:a9734463b78e04c3e803acb25d3314436"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new message in memory from a character array containting the coded message.  <a href="#a9734463b78e04c3e803acb25d3314436">More...</a><br/></td></tr>
<tr class="separator:a9734463b78e04c3e803acb25d3314436"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9d90d4940f54ecebb44acb69a59d496"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#af9d90d4940f54ecebb44acb69a59d496">codes_new_from_message_int4</a> (msgid, message, status)</td></tr>
<tr class="memdesc:af9d90d4940f54ecebb44acb69a59d496"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new message in memory from an integer array containting the coded message.  <a href="#af9d90d4940f54ecebb44acb69a59d496">More...</a><br/></td></tr>
<tr class="separator:af9d90d4940f54ecebb44acb69a59d496"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfc477ba642e007ec55c7e4ce2c31a9d"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#acfc477ba642e007ec55c7e4ce2c31a9d">codes_grib_new_from_samples</a> (gribid, samplename, status)</td></tr>
<tr class="memdesc:acfc477ba642e007ec55c7e4ce2c31a9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new valid gribid from a GRIB sample contained in a samples directory pointed by the environment variable ECCODES_SAMPLES_PATH.  <a href="#acfc477ba642e007ec55c7e4ce2c31a9d">More...</a><br/></td></tr>
<tr class="separator:acfc477ba642e007ec55c7e4ce2c31a9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d32d26f2076db60d78e1c2d222dd01d"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a6d32d26f2076db60d78e1c2d222dd01d">codes_bufr_new_from_samples</a> (bufrid, samplename, status)</td></tr>
<tr class="memdesc:a6d32d26f2076db60d78e1c2d222dd01d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new valid bufrid from a BUFR sample contained in a samples directory pointed by the environment variable ECCODES_SAMPLES_PATH.  <a href="#a6d32d26f2076db60d78e1c2d222dd01d">More...</a><br/></td></tr>
<tr class="separator:a6d32d26f2076db60d78e1c2d222dd01d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c0ab28b0ae33f04d267d794a8bdd4b7"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a1c0ab28b0ae33f04d267d794a8bdd4b7">codes_release</a> (msgid, status)</td></tr>
<tr class="memdesc:a1c0ab28b0ae33f04d267d794a8bdd4b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free the memory for the message referred as msgid.  <a href="#a1c0ab28b0ae33f04d267d794a8bdd4b7">More...</a><br/></td></tr>
<tr class="separator:a1c0ab28b0ae33f04d267d794a8bdd4b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94c85dbc797f98a177795ff9a8ad8035"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a94c85dbc797f98a177795ff9a8ad8035">codes_clone</a> (msgid_src, msgid_dest, status)</td></tr>
<tr class="memdesc:a94c85dbc797f98a177795ff9a8ad8035"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a copy of a message.  <a href="#a94c85dbc797f98a177795ff9a8ad8035">More...</a><br/></td></tr>
<tr class="separator:a94c85dbc797f98a177795ff9a8ad8035"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8bba3684a289b1e8c6bcea0b67c45b5d"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a8bba3684a289b1e8c6bcea0b67c45b5d">codes_copy_namespace</a> (gribid_src, namespace, gribid_dest, status)</td></tr>
<tr class="memdesc:a8bba3684a289b1e8c6bcea0b67c45b5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy the value of all the keys belonging to a namespace from the source message to the destination message.  <a href="#a8bba3684a289b1e8c6bcea0b67c45b5d">More...</a><br/></td></tr>
<tr class="separator:a8bba3684a289b1e8c6bcea0b67c45b5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1cd5ff5ea308443bfe166974d9ab1363"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a1cd5ff5ea308443bfe166974d9ab1363">codes_check</a> (status, caller, string)</td></tr>
<tr class="memdesc:a1cd5ff5ea308443bfe166974d9ab1363"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check the status returned by a subroutine.  <a href="#a1cd5ff5ea308443bfe166974d9ab1363">More...</a><br/></td></tr>
<tr class="separator:a1cd5ff5ea308443bfe166974d9ab1363"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e93200c0e6e4bdacaf1bec1e0a29ee7"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a0e93200c0e6e4bdacaf1bec1e0a29ee7">codes_grib_get_data_real4</a> (gribid, lats, lons, values, status)</td></tr>
<tr class="memdesc:a0e93200c0e6e4bdacaf1bec1e0a29ee7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get latitudes/longitudes/data values (real(4)).  <a href="#a0e93200c0e6e4bdacaf1bec1e0a29ee7">More...</a><br/></td></tr>
<tr class="separator:a0e93200c0e6e4bdacaf1bec1e0a29ee7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a043bb1e696da61d06523ad35ae16fe8c"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a043bb1e696da61d06523ad35ae16fe8c">codes_grib_get_data_real8</a> (gribid, lats, lons, values, status)</td></tr>
<tr class="memdesc:a043bb1e696da61d06523ad35ae16fe8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get latitudes/longitudes/data values (real(8)).  <a href="#a043bb1e696da61d06523ad35ae16fe8c">More...</a><br/></td></tr>
<tr class="separator:a043bb1e696da61d06523ad35ae16fe8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9e9bae052da5148e4a0ca85f31c69b5"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#ae9e9bae052da5148e4a0ca85f31c69b5">codes_keys_iterator_new</a> (msgid, iterid, namespace, status)</td></tr>
<tr class="memdesc:ae9e9bae052da5148e4a0ca85f31c69b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new iterator on the keys.  <a href="#ae9e9bae052da5148e4a0ca85f31c69b5">More...</a><br/></td></tr>
<tr class="separator:ae9e9bae052da5148e4a0ca85f31c69b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaaa40acb7f8e05783e106c32a541a66d"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#aaaa40acb7f8e05783e106c32a541a66d">codes_keys_iterator_next</a> (iterid, status)</td></tr>
<tr class="memdesc:aaaa40acb7f8e05783e106c32a541a66d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Advance to the next keys iterator value.  <a href="#aaaa40acb7f8e05783e106c32a541a66d">More...</a><br/></td></tr>
<tr class="separator:aaaa40acb7f8e05783e106c32a541a66d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d81274245d3a60ab85d657aa11512e5"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a5d81274245d3a60ab85d657aa11512e5">codes_keys_iterator_delete</a> (iterid, status)</td></tr>
<tr class="memdesc:a5d81274245d3a60ab85d657aa11512e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a keys iterator and free memory.  <a href="#a5d81274245d3a60ab85d657aa11512e5">More...</a><br/></td></tr>
<tr class="separator:a5d81274245d3a60ab85d657aa11512e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a695b7f3f87bfb465908447ce51024221"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a695b7f3f87bfb465908447ce51024221">codes_keys_iterator_get_name</a> (iterid, name, status)</td></tr>
<tr class="memdesc:a695b7f3f87bfb465908447ce51024221"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the name of a key from a keys iterator.  <a href="#a695b7f3f87bfb465908447ce51024221">More...</a><br/></td></tr>
<tr class="separator:a695b7f3f87bfb465908447ce51024221"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6055f116c22830fc941b6db2e133d25"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#aa6055f116c22830fc941b6db2e133d25">codes_keys_iterator_rewind</a> (iterid, status)</td></tr>
<tr class="memdesc:aa6055f116c22830fc941b6db2e133d25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rewind a keys iterator.  <a href="#aa6055f116c22830fc941b6db2e133d25">More...</a><br/></td></tr>
<tr class="separator:aa6055f116c22830fc941b6db2e133d25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5e1ab3efc1981c886e64e467c1b84a1"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#ab5e1ab3efc1981c886e64e467c1b84a1">codes_dump</a> (msgid, status)</td></tr>
<tr class="memdesc:ab5e1ab3efc1981c886e64e467c1b84a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dump the content of a message.  <a href="#ab5e1ab3efc1981c886e64e467c1b84a1">More...</a><br/></td></tr>
<tr class="separator:ab5e1ab3efc1981c886e64e467c1b84a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a835de867b8ad79cc43f127e7048712f3"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a> (error, error_message, status)</td></tr>
<tr class="memdesc:a835de867b8ad79cc43f127e7048712f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the error message given an error code.  <a href="#a835de867b8ad79cc43f127e7048712f3">More...</a><br/></td></tr>
<tr class="separator:a835de867b8ad79cc43f127e7048712f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac566c4909f1ea554517d256a780cf87f"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#ac566c4909f1ea554517d256a780cf87f">codes_get_size_int</a> (msgid, key, size, status)</td></tr>
<tr class="memdesc:ac566c4909f1ea554517d256a780cf87f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of an array key.  <a href="#ac566c4909f1ea554517d256a780cf87f">More...</a><br/></td></tr>
<tr class="separator:ac566c4909f1ea554517d256a780cf87f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accd5b68ef585873b05a3f61d7dda3f3a"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#accd5b68ef585873b05a3f61d7dda3f3a">codes_get_size_long</a> (msgid, key, size, status)</td></tr>
<tr class="memdesc:accd5b68ef585873b05a3f61d7dda3f3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of an array key.  <a href="#accd5b68ef585873b05a3f61d7dda3f3a">More...</a><br/></td></tr>
<tr class="separator:accd5b68ef585873b05a3f61d7dda3f3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15e9f187ba45e4a334f270884c59651e"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a15e9f187ba45e4a334f270884c59651e">codes_get_int</a> (msgid, key, value, status)</td></tr>
<tr class="memdesc:a15e9f187ba45e4a334f270884c59651e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the integer value of a key from a message.  <a href="#a15e9f187ba45e4a334f270884c59651e">More...</a><br/></td></tr>
<tr class="separator:a15e9f187ba45e4a334f270884c59651e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad85e9d6d052fdcbfade2d201357e391d"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#ad85e9d6d052fdcbfade2d201357e391d">codes_get_long</a> (msgid, key, value, status)</td></tr>
<tr class="memdesc:ad85e9d6d052fdcbfade2d201357e391d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the integer value of a key from a message.  <a href="#ad85e9d6d052fdcbfade2d201357e391d">More...</a><br/></td></tr>
<tr class="separator:ad85e9d6d052fdcbfade2d201357e391d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff0e850cce3105f72b76a603e104cce4"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#aff0e850cce3105f72b76a603e104cce4">codes_is_missing</a> (msgid, key, is_missing, status)</td></tr>
<tr class="memdesc:aff0e850cce3105f72b76a603e104cce4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the value of a key is MISSING.  <a href="#aff0e850cce3105f72b76a603e104cce4">More...</a><br/></td></tr>
<tr class="separator:aff0e850cce3105f72b76a603e104cce4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4aeb717b8aba0e2898a83d56363bab98"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a4aeb717b8aba0e2898a83d56363bab98">codes_is_defined</a> (msgid, key, is_defined, status)</td></tr>
<tr class="memdesc:a4aeb717b8aba0e2898a83d56363bab98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a key is defined (exists in the message)  <a href="#a4aeb717b8aba0e2898a83d56363bab98">More...</a><br/></td></tr>
<tr class="separator:a4aeb717b8aba0e2898a83d56363bab98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6c505dfdf5a75f51c07683abed39b68"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#ab6c505dfdf5a75f51c07683abed39b68">codes_get_real4</a> (msgid, key, value, status)</td></tr>
<tr class="memdesc:ab6c505dfdf5a75f51c07683abed39b68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the real(4) value of a key from a message.  <a href="#ab6c505dfdf5a75f51c07683abed39b68">More...</a><br/></td></tr>
<tr class="separator:ab6c505dfdf5a75f51c07683abed39b68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ca22327e21aca686d29f8953e235839"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a2ca22327e21aca686d29f8953e235839">codes_get_real8</a> (msgid, key, value, status)</td></tr>
<tr class="memdesc:a2ca22327e21aca686d29f8953e235839"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the real(8) value of a key from a message.  <a href="#a2ca22327e21aca686d29f8953e235839">More...</a><br/></td></tr>
<tr class="separator:a2ca22327e21aca686d29f8953e235839"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b71df8830b162b7773cf4d1446b4303"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a9b71df8830b162b7773cf4d1446b4303">codes_get_string</a> (msgid, key, value, status)</td></tr>
<tr class="memdesc:a9b71df8830b162b7773cf4d1446b4303"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the character value of a key from a message.  <a href="#a9b71df8830b162b7773cf4d1446b4303">More...</a><br/></td></tr>
<tr class="separator:a9b71df8830b162b7773cf4d1446b4303"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a731aac9d5d75917e12048573ae86e7c6"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a731aac9d5d75917e12048573ae86e7c6">codes_get_string_array</a> (msgid, key, value, status)</td></tr>
<tr class="memdesc:a731aac9d5d75917e12048573ae86e7c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the string array of values for a key from a message.  <a href="#a731aac9d5d75917e12048573ae86e7c6">More...</a><br/></td></tr>
<tr class="separator:a731aac9d5d75917e12048573ae86e7c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a030c4f01609c1206deef936ba3e0029b"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a030c4f01609c1206deef936ba3e0029b">codes_bufr_copy_data</a> (msgid1, msgid2, status)</td></tr>
<tr class="memdesc:a030c4f01609c1206deef936ba3e0029b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy data values from a BUFR message msgid1 to another message msgid2.  <a href="#a030c4f01609c1206deef936ba3e0029b">More...</a><br/></td></tr>
<tr class="separator:a030c4f01609c1206deef936ba3e0029b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae3ccb53638a4d16daf98d937a96e8b6"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#aae3ccb53638a4d16daf98d937a96e8b6">codes_set_string_array</a> (msgid, key, value, status)</td></tr>
<tr class="memdesc:aae3ccb53638a4d16daf98d937a96e8b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the string values for an array key in a message.  <a href="#aae3ccb53638a4d16daf98d937a96e8b6">More...</a><br/></td></tr>
<tr class="separator:aae3ccb53638a4d16daf98d937a96e8b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a620d907f796a466b9b849be12e96a274"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a620d907f796a466b9b849be12e96a274">codes_get_int_array</a> (msgid, key, value, status)</td></tr>
<tr class="memdesc:a620d907f796a466b9b849be12e96a274"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the integer array of values for a key from a message.  <a href="#a620d907f796a466b9b849be12e96a274">More...</a><br/></td></tr>
<tr class="separator:a620d907f796a466b9b849be12e96a274"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ff7f18601949da80f10d1614e0d0541"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a0ff7f18601949da80f10d1614e0d0541">codes_get_long_array</a> (msgid, key, value, status)</td></tr>
<tr class="memdesc:a0ff7f18601949da80f10d1614e0d0541"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the integer array of values for a key from a message.  <a href="#a0ff7f18601949da80f10d1614e0d0541">More...</a><br/></td></tr>
<tr class="separator:a0ff7f18601949da80f10d1614e0d0541"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adee61373d840f0f6a73be5d574a47a1e"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#adee61373d840f0f6a73be5d574a47a1e">codes_get_byte_array</a> (msgid, key, value, length, status)</td></tr>
<tr class="memdesc:adee61373d840f0f6a73be5d574a47a1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the array of bytes (character) for a key from a message.  <a href="#adee61373d840f0f6a73be5d574a47a1e">More...</a><br/></td></tr>
<tr class="separator:adee61373d840f0f6a73be5d574a47a1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1df5b7389172122fe2c84c4156f18d0"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#ae1df5b7389172122fe2c84c4156f18d0">codes_get_real4_array</a> (msgid, key, value, status)</td></tr>
<tr class="memdesc:ae1df5b7389172122fe2c84c4156f18d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the real(4) array of values for a key from a message.  <a href="#ae1df5b7389172122fe2c84c4156f18d0">More...</a><br/></td></tr>
<tr class="separator:ae1df5b7389172122fe2c84c4156f18d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b28e570e54dad5a779e0452d3ed66d4"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a4b28e570e54dad5a779e0452d3ed66d4">codes_get_real8_array</a> (msgid, key, value, status)</td></tr>
<tr class="memdesc:a4b28e570e54dad5a779e0452d3ed66d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the real(8) array of values for a key from a message.  <a href="#a4b28e570e54dad5a779e0452d3ed66d4">More...</a><br/></td></tr>
<tr class="separator:a4b28e570e54dad5a779e0452d3ed66d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d846a6d3872e4fdb991b007b7ab1301"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a9d846a6d3872e4fdb991b007b7ab1301">codes_get_real4_element</a> (msgid, key, kindex, value, status)</td></tr>
<tr class="memdesc:a9d846a6d3872e4fdb991b007b7ab1301"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a real(4) value of specified index from an array key.  <a href="#a9d846a6d3872e4fdb991b007b7ab1301">More...</a><br/></td></tr>
<tr class="separator:a9d846a6d3872e4fdb991b007b7ab1301"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f8c1bc6b5c77950fe80d324c99e541a"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a7f8c1bc6b5c77950fe80d324c99e541a">codes_get_real8_element</a> (msgid, key, kindex, value, status)</td></tr>
<tr class="memdesc:a7f8c1bc6b5c77950fe80d324c99e541a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a real(8) value of specified index from an array key.  <a href="#a7f8c1bc6b5c77950fe80d324c99e541a">More...</a><br/></td></tr>
<tr class="separator:a7f8c1bc6b5c77950fe80d324c99e541a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e52b77671af20322bd3fc72282449e3"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a6e52b77671af20322bd3fc72282449e3">codes_get_real4_elements</a> (msgid, key, kindex, value, status)</td></tr>
<tr class="memdesc:a6e52b77671af20322bd3fc72282449e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the real(4) values whose indexes are stored in the array "index" from an array key.  <a href="#a6e52b77671af20322bd3fc72282449e3">More...</a><br/></td></tr>
<tr class="separator:a6e52b77671af20322bd3fc72282449e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2652d9dd45016f29721a60a5104867f"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#ad2652d9dd45016f29721a60a5104867f">codes_get_real8_elements</a> (msgid, key, kindex, value, status)</td></tr>
<tr class="memdesc:ad2652d9dd45016f29721a60a5104867f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the real(8) values whose indexes are stored in the array "index" from an array key.  <a href="#ad2652d9dd45016f29721a60a5104867f">More...</a><br/></td></tr>
<tr class="separator:ad2652d9dd45016f29721a60a5104867f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac060bb983b9e515db8ad7edd3d91ce9a"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#ac060bb983b9e515db8ad7edd3d91ce9a">codes_set_int</a> (msgid, key, value, status)</td></tr>
<tr class="memdesc:ac060bb983b9e515db8ad7edd3d91ce9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the integer value for a key in a message.  <a href="#ac060bb983b9e515db8ad7edd3d91ce9a">More...</a><br/></td></tr>
<tr class="separator:ac060bb983b9e515db8ad7edd3d91ce9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c9cdc65f00b3c36742206e6e3dde864"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a3c9cdc65f00b3c36742206e6e3dde864">codes_set_long</a> (msgid, key, value, status)</td></tr>
<tr class="memdesc:a3c9cdc65f00b3c36742206e6e3dde864"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the integer value for a key in a message.  <a href="#a3c9cdc65f00b3c36742206e6e3dde864">More...</a><br/></td></tr>
<tr class="separator:a3c9cdc65f00b3c36742206e6e3dde864"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2614a1e015c16370ed18cc360a14663e"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a2614a1e015c16370ed18cc360a14663e">codes_set_real4</a> (msgid, key, value, status)</td></tr>
<tr class="memdesc:a2614a1e015c16370ed18cc360a14663e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the real(4) value for a key in a message.  <a href="#a2614a1e015c16370ed18cc360a14663e">More...</a><br/></td></tr>
<tr class="separator:a2614a1e015c16370ed18cc360a14663e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b20fe82de5ba6f8355ff8a5d2725b3d"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a4b20fe82de5ba6f8355ff8a5d2725b3d">codes_set_real8</a> (msgid, key, value, status)</td></tr>
<tr class="memdesc:a4b20fe82de5ba6f8355ff8a5d2725b3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the real(8) value for a key in a message.  <a href="#a4b20fe82de5ba6f8355ff8a5d2725b3d">More...</a><br/></td></tr>
<tr class="separator:a4b20fe82de5ba6f8355ff8a5d2725b3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18b5890c85f15d5fefeefc2b99a09ce5"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a18b5890c85f15d5fefeefc2b99a09ce5">codes_set_int_array</a> (msgid, key, value, status)</td></tr>
<tr class="memdesc:a18b5890c85f15d5fefeefc2b99a09ce5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the integers values for an array key in a message.  <a href="#a18b5890c85f15d5fefeefc2b99a09ce5">More...</a><br/></td></tr>
<tr class="separator:a18b5890c85f15d5fefeefc2b99a09ce5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fa893fca21268a9c12d93e9d8c664e3"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a5fa893fca21268a9c12d93e9d8c664e3">codes_set_long_array</a> (msgid, key, value, status)</td></tr>
<tr class="memdesc:a5fa893fca21268a9c12d93e9d8c664e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the integers values for an array key in a message.  <a href="#a5fa893fca21268a9c12d93e9d8c664e3">More...</a><br/></td></tr>
<tr class="separator:a5fa893fca21268a9c12d93e9d8c664e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a292d71c0a7252bdfded6a38aea4284be"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a292d71c0a7252bdfded6a38aea4284be">codes_set_byte_array</a> (msgid, key, value, length, status)</td></tr>
<tr class="memdesc:a292d71c0a7252bdfded6a38aea4284be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the array of bytes (character) for a key in a message.  <a href="#a292d71c0a7252bdfded6a38aea4284be">More...</a><br/></td></tr>
<tr class="separator:a292d71c0a7252bdfded6a38aea4284be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabaefc49c8d603bcf18a627dacc38f15"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#aabaefc49c8d603bcf18a627dacc38f15">codes_set_real4_array</a> (msgid, key, value, status)</td></tr>
<tr class="memdesc:aabaefc49c8d603bcf18a627dacc38f15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the real(4) values for an array key in a message.  <a href="#aabaefc49c8d603bcf18a627dacc38f15">More...</a><br/></td></tr>
<tr class="separator:aabaefc49c8d603bcf18a627dacc38f15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14b3bc17ea1ee83936f32dd0fced44a4"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a14b3bc17ea1ee83936f32dd0fced44a4">codes_set_real8_array</a> (msgid, key, value, status)</td></tr>
<tr class="memdesc:a14b3bc17ea1ee83936f32dd0fced44a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the real(8) values for an array key in a message.  <a href="#a14b3bc17ea1ee83936f32dd0fced44a4">More...</a><br/></td></tr>
<tr class="separator:a14b3bc17ea1ee83936f32dd0fced44a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50acfd20f8dff8b4e547135057ef119a"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a50acfd20f8dff8b4e547135057ef119a">codes_set_string</a> (msgid, key, value, status)</td></tr>
<tr class="memdesc:a50acfd20f8dff8b4e547135057ef119a"><td class="mdescLeft">&#160;</td><td class="mdescRight">*/  <a href="#a50acfd20f8dff8b4e547135057ef119a">More...</a><br/></td></tr>
<tr class="separator:a50acfd20f8dff8b4e547135057ef119a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4ff60a9bd8d0c1c0173242897db4816"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#af4ff60a9bd8d0c1c0173242897db4816">codes_get_message_size_int</a> (msgid, nbytes, status)</td></tr>
<tr class="memdesc:af4ff60a9bd8d0c1c0173242897db4816"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of a coded message.  <a href="#af4ff60a9bd8d0c1c0173242897db4816">More...</a><br/></td></tr>
<tr class="separator:af4ff60a9bd8d0c1c0173242897db4816"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a032408e4f1a842a42fca23218ec85a4d"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a032408e4f1a842a42fca23218ec85a4d">codes_get_message_size_size_t</a> (msgid, nbytes, status)</td></tr>
<tr class="memdesc:a032408e4f1a842a42fca23218ec85a4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of a coded message.  <a href="#a032408e4f1a842a42fca23218ec85a4d">More...</a><br/></td></tr>
<tr class="separator:a032408e4f1a842a42fca23218ec85a4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdd32c1a78f0a3d54992e0a6a6bfc66b"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#afdd32c1a78f0a3d54992e0a6a6bfc66b">codes_copy_message</a> (msgid, message, status)</td></tr>
<tr class="memdesc:afdd32c1a78f0a3d54992e0a6a6bfc66b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy the coded message into an array.  <a href="#afdd32c1a78f0a3d54992e0a6a6bfc66b">More...</a><br/></td></tr>
<tr class="separator:afdd32c1a78f0a3d54992e0a6a6bfc66b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad91213a6e3ee312c50dba0cdbf2bc55d"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#ad91213a6e3ee312c50dba0cdbf2bc55d">codes_write</a> (msgid, ifile, status)</td></tr>
<tr class="memdesc:ad91213a6e3ee312c50dba0cdbf2bc55d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the coded message to a file.  <a href="#ad91213a6e3ee312c50dba0cdbf2bc55d">More...</a><br/></td></tr>
<tr class="separator:ad91213a6e3ee312c50dba0cdbf2bc55d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1ef915b62ebf910254f05cb619c0168"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#aa1ef915b62ebf910254f05cb619c0168">codes_grib_multi_write</a> (multigribid, ifile, status)</td></tr>
<tr class="memdesc:aa1ef915b62ebf910254f05cb619c0168"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a multi field message to a file.  <a href="#aa1ef915b62ebf910254f05cb619c0168">More...</a><br/></td></tr>
<tr class="separator:aa1ef915b62ebf910254f05cb619c0168"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a385aa2c504656d11812dd461819446ba"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a385aa2c504656d11812dd461819446ba">codes_grib_multi_append</a> (ingribid, startsection, multigribid, status)</td></tr>
<tr class="memdesc:a385aa2c504656d11812dd461819446ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Append a single field grib message to a multi field grib message.  <a href="#a385aa2c504656d11812dd461819446ba">More...</a><br/></td></tr>
<tr class="separator:a385aa2c504656d11812dd461819446ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb92b7a78966c0b2f53ee6e288bff673"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#acb92b7a78966c0b2f53ee6e288bff673">codes_grib_find_nearest_multiple</a> (gribid, is_lsm, inlats, inlons, outlats, outlons, values, distances, indexes, status)</td></tr>
<tr class="memdesc:acb92b7a78966c0b2f53ee6e288bff673"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the nearest point of a set of points whose latitudes and longitudes are given in the inlats, inlons arrays respectively.  <a href="#acb92b7a78966c0b2f53ee6e288bff673">More...</a><br/></td></tr>
<tr class="separator:acb92b7a78966c0b2f53ee6e288bff673"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96fb4afe88914ad24ac796fbecc453c4"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a96fb4afe88914ad24ac796fbecc453c4">codes_grib_find_nearest_single</a> (gribid, is_lsm, inlat, inlon, outlat, outlon, value, distance, kindex, status)</td></tr>
<tr class="memdesc:a96fb4afe88914ad24ac796fbecc453c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the nearest point of a given latitude/longitude point.  <a href="#a96fb4afe88914ad24ac796fbecc453c4">More...</a><br/></td></tr>
<tr class="separator:a96fb4afe88914ad24ac796fbecc453c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b677451802af47da342addf6624870a"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a2b677451802af47da342addf6624870a">codes_grib_find_nearest_four_single</a> (gribid, is_lsm, inlat, inlon, outlat, outlon, value, distance, kindex, status)</td></tr>
<tr class="memdesc:a2b677451802af47da342addf6624870a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the 4 nearest points of a latitude longitude point.  <a href="#a2b677451802af47da342addf6624870a">More...</a><br/></td></tr>
<tr class="separator:a2b677451802af47da342addf6624870a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69d578039c073e637d727078778ca3ef"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a69d578039c073e637d727078778ca3ef">codes_grib_multi_support_on</a> (status)</td></tr>
<tr class="memdesc:a69d578039c073e637d727078778ca3ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Turn on the support for multiple fields in a single message.  <a href="#a69d578039c073e637d727078778ca3ef">More...</a><br/></td></tr>
<tr class="separator:a69d578039c073e637d727078778ca3ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab11428b591f9ea0ae46e5116ad9e5c7f"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#ab11428b591f9ea0ae46e5116ad9e5c7f">codes_grib_multi_support_off</a> (status)</td></tr>
<tr class="memdesc:ab11428b591f9ea0ae46e5116ad9e5c7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Turn off the support for multiple fields in a single message.  <a href="#ab11428b591f9ea0ae46e5116ad9e5c7f">More...</a><br/></td></tr>
<tr class="separator:ab11428b591f9ea0ae46e5116ad9e5c7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8e36bbbe3caddac4ad7d8bcdfa3cd28"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#aa8e36bbbe3caddac4ad7d8bcdfa3cd28">codes_gribex_mode_on</a> (status)</td></tr>
<tr class="memdesc:aa8e36bbbe3caddac4ad7d8bcdfa3cd28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Turn on the compatibility mode with gribex.  <a href="#aa8e36bbbe3caddac4ad7d8bcdfa3cd28">More...</a><br/></td></tr>
<tr class="separator:aa8e36bbbe3caddac4ad7d8bcdfa3cd28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb69eeef59ba780c62d7f600915aa986"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#acb69eeef59ba780c62d7f600915aa986">codes_gribex_mode_off</a> (status)</td></tr>
<tr class="memdesc:acb69eeef59ba780c62d7f600915aa986"><td class="mdescLeft">&#160;</td><td class="mdescRight">Turn off the compatibility mode with GRIBEX.  <a href="#acb69eeef59ba780c62d7f600915aa986">More...</a><br/></td></tr>
<tr class="separator:acb69eeef59ba780c62d7f600915aa986"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad63202303a1b6aaf9f5e605622a8095"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#aad63202303a1b6aaf9f5e605622a8095">codes_skip_computed</a> (iterid, status)</td></tr>
<tr class="memdesc:aad63202303a1b6aaf9f5e605622a8095"><td class="mdescLeft">&#160;</td><td class="mdescRight">Skip the computed keys in a keys iterator.  <a href="#aad63202303a1b6aaf9f5e605622a8095">More...</a><br/></td></tr>
<tr class="separator:aad63202303a1b6aaf9f5e605622a8095"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56a1567687b281d07c193ce273c0e1b2"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a56a1567687b281d07c193ce273c0e1b2">codes_skip_coded</a> (iterid, status)</td></tr>
<tr class="memdesc:a56a1567687b281d07c193ce273c0e1b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Skip the coded keys in a keys iterator.  <a href="#a56a1567687b281d07c193ce273c0e1b2">More...</a><br/></td></tr>
<tr class="separator:a56a1567687b281d07c193ce273c0e1b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f23dd14b726d10d92637719dda7753b"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a2f23dd14b726d10d92637719dda7753b">codes_skip_duplicates</a> (iterid, status)</td></tr>
<tr class="memdesc:a2f23dd14b726d10d92637719dda7753b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Skip the duplicated keys in a keys iterator.  <a href="#a2f23dd14b726d10d92637719dda7753b">More...</a><br/></td></tr>
<tr class="separator:a2f23dd14b726d10d92637719dda7753b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7f01fdbea67a38997eff86255397181"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#aa7f01fdbea67a38997eff86255397181">codes_skip_read_only</a> (iterid, status)</td></tr>
<tr class="memdesc:aa7f01fdbea67a38997eff86255397181"><td class="mdescLeft">&#160;</td><td class="mdescRight">Skip the read_only keys in a keys iterator.  <a href="#aa7f01fdbea67a38997eff86255397181">More...</a><br/></td></tr>
<tr class="separator:aa7f01fdbea67a38997eff86255397181"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8544407e16786d6d72df0fc3cc37ff3a"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a8544407e16786d6d72df0fc3cc37ff3a">codes_set_definitions_path</a> (path, status)</td></tr>
<tr class="memdesc:a8544407e16786d6d72df0fc3cc37ff3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the definition path.  <a href="#a8544407e16786d6d72df0fc3cc37ff3a">More...</a><br/></td></tr>
<tr class="separator:a8544407e16786d6d72df0fc3cc37ff3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4be467f3273e17111becbd483c25018"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#af4be467f3273e17111becbd483c25018">codes_set_samples_path</a> (path, status)</td></tr>
<tr class="memdesc:af4be467f3273e17111becbd483c25018"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the samples path.  <a href="#af4be467f3273e17111becbd483c25018">More...</a><br/></td></tr>
<tr class="separator:af4be467f3273e17111becbd483c25018"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43bbbee406c2e974ae9cd4dcea41bd4d"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeccodes.html#a43bbbee406c2e974ae9cd4dcea41bd4d">codes_copy_key</a> (msgid_src, key, msgid_dest, status)</td></tr>
<tr class="memdesc:a43bbbee406c2e974ae9cd4dcea41bd4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy the value of a key from the source message to the destination message.  <a href="#a43bbbee406c2e974ae9cd4dcea41bd4d">More...</a><br/></td></tr>
<tr class="separator:a43bbbee406c2e974ae9cd4dcea41bd4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Module eccodes<br/>
 This is the <b>Fortran90</b> interface for <a class="el" href="namespaceec_codes.html" title="This package is the Python interface to ecCodes. ">ecCodes</a>. </p>
</div><h2 class="groupheader">Member Function/Subroutine Documentation</h2>
<a class="anchor" id="aa468943e1c669487375b2e3d46ff84b1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_any_new_from_file </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load in memory a message from a file. </p>
<p>The message can be accessed through its msgid and it will be available<br/>
 until <a class="el" href="classeccodes.html#a1c0ab28b0ae33f04d267d794a8bdd4b7">codes_release</a> is called.<br/>
 </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the file opened with <a class="el" href="classeccodes.html#a28594e26f2f4b92b9c60e943dd8e1be3">codes_open_file</a> </td></tr>
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, CODES_END_OF_FILE at the end of file, or error code </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a030c4f01609c1206deef936ba3e0029b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_bufr_copy_data </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy data values from a BUFR message msgid1 to another message msgid2. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.<br/>
 </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid1</td><td>id of the message from which the data are copied </td></tr>
    <tr><td class="paramname">msgid2</td><td>id of the message to which the data are copied </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a94050d64954482cd82ea6f007fdc9ac0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_bufr_new_from_file </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out)&#160;</td>
          <td class="paramname"><em>bufrid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load in memory a BUFR message from a file. </p>
<p>The message can be accessed through its bufrid and it will be available<br/>
 until <a class="el" href="classeccodes.html#a1c0ab28b0ae33f04d267d794a8bdd4b7">codes_release</a> is called.<br/>
 <b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/bufr_get_keys" target="_blank">bufr_get_keys.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the file opened with <a class="el" href="classeccodes.html#a28594e26f2f4b92b9c60e943dd8e1be3">codes_open_file</a> </td></tr>
    <tr><td class="paramname">bufrid</td><td>id of the BUFR loaded in memory </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, CODES_END_OF_FILE at the end of file, or error code </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6d32d26f2076db60d78e1c2d222dd01d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_bufr_new_from_samples </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(out)&#160;</td>
          <td class="paramname"><em>bufrid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>samplename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new valid bufrid from a BUFR sample contained in a samples directory pointed by the environment variable ECCODES_SAMPLES_PATH. </p>
<p>To know where the samples directory is run the codes_info tool.<br/>
 In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bufrid</td><td>id of the BUFR loaded in memory </td></tr>
    <tr><td class="paramname">samplename</td><td>name of the BUFR sample to be used </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1cd5ff5ea308443bfe166974d9ab1363"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_check </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>string</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check the status returned by a subroutine. </p>
<p>In case of error it stops the program, returns the error code to the shell and prints the error message.<br/>
 </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">status</td><td>the status to be checked </td></tr>
    <tr><td class="paramname">caller</td><td>name of the caller soubroutine </td></tr>
    <tr><td class="paramname">string</td><td>a string variable from the caller routine (e.g. key,filename) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a94c85dbc797f98a177795ff9a8ad8035"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_clone </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid_src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out)&#160;</td>
          <td class="paramname"><em>msgid_dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a copy of a message. </p>
<p>Create a copy of a given message (<em>msgid_src</em>) giving a new<br/>
 message in memory (<em>msgid_dest</em>) exactly identical to the original one.<br/>
 In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_clone" target="_blank">grib_clone.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid_src</td><td>message to be cloned </td></tr>
    <tr><td class="paramname">msgid_dest</td><td>new message returned </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a436a01aabf91cdbb4c5902a5d1a2886e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_close_file </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Close a file. </p>
<p>If the <em>fileid</em> does not refer to an opened file an error code is returned in status.<br/>
 <b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_get_keys" target="_blank">grib_get_keys.f90</a></p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>is the id of the file to be closed. </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a43bbbee406c2e974ae9cd4dcea41bd4d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_copy_key </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid_src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid_dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy the value of a key from the source message to the destination message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid_src</td><td>source message </td></tr>
    <tr><td class="paramname">msgid_dest</td><td>destination message </td></tr>
    <tr><td class="paramname">key</td><td>key whose value is to be copied </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="afdd32c1a78f0a3d54992e0a6a6bfc66b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_copy_message </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=1), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy the coded message into an array. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">message</td><td>array containing the coded message to be copied </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8bba3684a289b1e8c6bcea0b67c45b5d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_copy_namespace </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>gribid_src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>namespace</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>gribid_dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy the value of all the keys belonging to a namespace from the source message to the destination message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gribid_src</td><td>source message </td></tr>
    <tr><td class="paramname">gribid_dest</td><td>destination message </td></tr>
    <tr><td class="paramname">namespace</td><td>namespace to be copied </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0a09420f86caf79873b2fb067e360049"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_count_in_file </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out)&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Counts the messages in a file. </p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/count_messages" target="_blank">count_messages.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the file opened with <a class="el" href="classeccodes.html#a28594e26f2f4b92b9c60e943dd8e1be3">codes_open_file</a> </td></tr>
    <tr><td class="paramname">n</td><td>number of messages in the file </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK or error code </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab5e1ab3efc1981c886e64e467c1b84a1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_dump </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Dump the content of a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="adee61373d840f0f6a73be5d574a47a1e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_get_byte_array </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=1), dimension(:), intent(inout)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the array of bytes (character) for a key from a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>character(len=1) array of byte values </td></tr>
    <tr><td class="paramname">length</td><td>(optional) output: number of values retrieved </td></tr>
    <tr><td class="paramname">status</td><td>(optional) CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a835de867b8ad79cc43f127e7048712f3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_get_error_string </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>error</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(out)&#160;</td>
          <td class="paramname"><em>error_message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the error message given an error code. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">error</td><td>error code </td></tr>
    <tr><td class="paramname">error_message</td><td>error message </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a15e9f187ba45e4a334f270884c59651e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_get_int </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind = kindofint), intent(out)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the integer value of a key from a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>the integer(4) value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a620d907f796a466b9b849be12e96a274"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_get_int_array </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), dimension(:), intent(inout), allocatable&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the integer array of values for a key from a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.<br/>
 Note: This function supports the <b>allocatable</b> array attribute</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>integer(4) array value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad85e9d6d052fdcbfade2d201357e391d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_get_long </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind = kindoflong), intent(out)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the integer value of a key from a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>the integer(4) value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0ff7f18601949da80f10d1614e0d0541"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_get_long_array </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindoflong), dimension(:), intent(inout), allocatable&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the integer array of values for a key from a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.<br/>
 Note: This function supports the <b>allocatable</b> array attribute</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>integer(4) array value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af4ff60a9bd8d0c1c0173242897db4816"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_get_message_size_int </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the size of a coded message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">nbytes</td><td>size in bytes of the message </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a032408e4f1a842a42fca23218ec85a4d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_get_message_size_size_t </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofsize_t), intent(out)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the size of a coded message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">nbytes</td><td>size in bytes of the message </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab6c505dfdf5a75f51c07683abed39b68"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_get_real4 </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindoffloat), intent(out)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the real(4) value of a key from a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>the real(4) value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae1df5b7389172122fe2c84c4156f18d0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_get_real4_array </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindoffloat), dimension(:), intent(inout), allocatable&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the real(4) array of values for a key from a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.<br/>
 Note: This function supports the <b>allocatable</b> array attribute</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>real(4) array value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9d846a6d3872e4fdb991b007b7ab1301"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_get_real4_element </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>kindex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindoffloat), intent(out)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get a real(4) value of specified index from an array key. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">kindex</td><td>integer(4) index </td></tr>
    <tr><td class="paramname">value</td><td>real(4) value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6e52b77671af20322bd3fc72282449e3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_get_real4_elements </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), dimension(:), intent(in)&#160;</td>
          <td class="paramname"><em>kindex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindoffloat), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the real(4) values whose indexes are stored in the array "index" from an array key. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">kindex</td><td>integer(4) array indexes </td></tr>
    <tr><td class="paramname">value</td><td>real(4) array value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2ca22327e21aca686d29f8953e235839"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_get_real8 </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), intent(out)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the real(8) value of a key from a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>the real(8) value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a4b28e570e54dad5a779e0452d3ed66d4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_get_real8_array </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), dimension(:), intent(inout), allocatable&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the real(8) array of values for a key from a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.<br/>
 Note: This function supports the <b>allocatable</b> array attribute</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>real(8) array value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7f8c1bc6b5c77950fe80d324c99e541a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_get_real8_element </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>kindex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), intent(out)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get a real(8) value of specified index from an array key. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">kindex</td><td>integer(4) index </td></tr>
    <tr><td class="paramname">value</td><td>real(8) value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad2652d9dd45016f29721a60a5104867f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_get_real8_elements </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), dimension(:), intent(in)&#160;</td>
          <td class="paramname"><em>kindex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the real(8) values whose indexes are stored in the array "index" from an array key. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">kindex</td><td>integer(4) array index </td></tr>
    <tr><td class="paramname">value</td><td>real(8) array value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac566c4909f1ea554517d256a780cf87f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_get_size_int </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out)&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the size of an array key. </p>
<p>To get the size of a key representing an array.</p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>name of the key </td></tr>
    <tr><td class="paramname">size</td><td>size of the array key </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="accd5b68ef585873b05a3f61d7dda3f3a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_get_size_long </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindoflong), intent(out)&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the size of an array key. </p>
<p>To get the size of a key representing an array.</p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>name of the key </td></tr>
    <tr><td class="paramname">size</td><td>size of the array key </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9b71df8830b162b7773cf4d1446b4303"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_get_string </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(out)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the character value of a key from a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>the character value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a731aac9d5d75917e12048573ae86e7c6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_get_string_array </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), dimension(:), intent(inout), allocatable&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the string array of values for a key from a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.<br/>
 Note: This function supports the <b>allocatable</b> array attribute</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>string array value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2b677451802af47da342addf6624870a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_grib_find_nearest_four_single </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>gribid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">logical, intent(in)&#160;</td>
          <td class="paramname"><em>is_lsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), intent(in)&#160;</td>
          <td class="paramname"><em>inlat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), intent(in)&#160;</td>
          <td class="paramname"><em>inlon</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), dimension(4), intent(out)&#160;</td>
          <td class="paramname"><em>outlat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), dimension(4), intent(out)&#160;</td>
          <td class="paramname"><em>outlon</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), dimension(4), intent(out)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), dimension(4), intent(out)&#160;</td>
          <td class="paramname"><em>distance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind = kindofint), dimension(4), intent(out)&#160;</td>
          <td class="paramname"><em>kindex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find the 4 nearest points of a latitude longitude point. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gribid</td><td>id of the GRIB loaded in memory </td></tr>
    <tr><td class="paramname">is_lsm</td><td>.true. if the nearest land point is required otherwise .false. </td></tr>
    <tr><td class="paramname">inlat</td><td>latitude of the point </td></tr>
    <tr><td class="paramname">inlon</td><td>longitudes of the point </td></tr>
    <tr><td class="paramname">outlat</td><td>latitude of the nearest point </td></tr>
    <tr><td class="paramname">outlon</td><td>longitude of the nearest point </td></tr>
    <tr><td class="paramname">distance</td><td>distance between the given point and its nearest </td></tr>
    <tr><td class="paramname">kindex</td><td>zero based index </td></tr>
    <tr><td class="paramname">value</td><td>value of the field in the nearest point </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="acb92b7a78966c0b2f53ee6e288bff673"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_grib_find_nearest_multiple </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>gribid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">logical, intent(in)&#160;</td>
          <td class="paramname"><em>is_lsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), dimension(:), intent(in)&#160;</td>
          <td class="paramname"><em>inlats</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), dimension(:), intent(in)&#160;</td>
          <td class="paramname"><em>inlons</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>outlats</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>outlons</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>values</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>distances</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind = kindofint), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>indexes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find the nearest point of a set of points whose latitudes and longitudes are given in the inlats, inlons arrays respectively. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gribid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">is_lsm</td><td>.true. if the nearest land point is required otherwise .false. </td></tr>
    <tr><td class="paramname">inlats</td><td>input real(8) array of the latitudes of the points </td></tr>
    <tr><td class="paramname">inlons</td><td>input real(8) array of the longitudes of the points </td></tr>
    <tr><td class="paramname">outlats</td><td>output real(8) array of the latitudes of the nearest points </td></tr>
    <tr><td class="paramname">outlons</td><td>output real(8) array of the longitudes of the nearest points </td></tr>
    <tr><td class="paramname">distances</td><td>output real(8) array of the distances </td></tr>
    <tr><td class="paramname">indexes</td><td>output integer(4) array of the zero based indexes </td></tr>
    <tr><td class="paramname">values</td><td>output real(8) array of the values </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a96fb4afe88914ad24ac796fbecc453c4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_grib_find_nearest_single </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>gribid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">logical, intent(in)&#160;</td>
          <td class="paramname"><em>is_lsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), intent(in)&#160;</td>
          <td class="paramname"><em>inlat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), intent(in)&#160;</td>
          <td class="paramname"><em>inlon</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), intent(out)&#160;</td>
          <td class="paramname"><em>outlat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), intent(out)&#160;</td>
          <td class="paramname"><em>outlon</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), intent(out)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), intent(out)&#160;</td>
          <td class="paramname"><em>distance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind = kindofint), intent(out)&#160;</td>
          <td class="paramname"><em>kindex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find the nearest point of a given latitude/longitude point. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gribid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">is_lsm</td><td>.true. if the nearest land point is required otherwise .false. </td></tr>
    <tr><td class="paramname">inlat</td><td>latitude of the point </td></tr>
    <tr><td class="paramname">inlon</td><td>longitudes of the point </td></tr>
    <tr><td class="paramname">outlat</td><td>latitude of the nearest point </td></tr>
    <tr><td class="paramname">outlon</td><td>longitude of the nearest point </td></tr>
    <tr><td class="paramname">distance</td><td>distance between the given point and its nearest </td></tr>
    <tr><td class="paramname">kindex</td><td>zero based index </td></tr>
    <tr><td class="paramname">value</td><td>value of the field in the nearest point </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0e93200c0e6e4bdacaf1bec1e0a29ee7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_grib_get_data_real4 </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>gribid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real ( kind = kindoffloat ), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>lats</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real ( kind = kindoffloat ), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>lons</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real ( kind = kindoffloat ), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>values</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get latitudes/longitudes/data values (real(4)). </p>
<p>Latitudes, longitudes, data values arrays are returned. They must be properly allocated by the caller and their required dimension can be obtained with <a class="el" href="interfaceeccodes_1_1codes__get__size.html">codes_get_size</a> or by getting (with <a class="el" href="interfaceeccodes_1_1codes__get.html">codes_get</a>) the value of the integer key "numberOfPoints".</p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gribid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">lats</td><td>latitudes array with dimension "size" </td></tr>
    <tr><td class="paramname">lons</td><td>longitudes array with dimension "size" </td></tr>
    <tr><td class="paramname">values</td><td>data values array with dimension "size" </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a043bb1e696da61d06523ad35ae16fe8c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_grib_get_data_real8 </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>gribid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real ( kind = kindofdouble ), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>lats</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real ( kind = kindofdouble ), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>lons</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real ( kind = kindofdouble ), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>values</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get latitudes/longitudes/data values (real(8)). </p>
<p>Latitudes, longitudes, data values arrays are returned. They must be properly allocated by the calling program/function. Their required dimension can be obtained by getting (with <a class="el" href="interfaceeccodes_1_1codes__get.html">codes_get</a>) the value of the integer key "numberOfPoints". In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gribid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">lats</td><td>latitudes array </td></tr>
    <tr><td class="paramname">lons</td><td>longitudes array </td></tr>
    <tr><td class="paramname">values</td><td>data values array </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a385aa2c504656d11812dd461819446ba"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_grib_multi_append </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ingribid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>startsection</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out)&#160;</td>
          <td class="paramname"><em>multigribid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Append a single field grib message to a multi field grib message. </p>
<p>Only the sections with section number greather or equal "startsection" are copied from the input single message to the multi field output grib.</p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ingribid</td><td>id of the input single grib </td></tr>
    <tr><td class="paramname">startsection</td><td>starting from startsection (included) all the sections are copied from the input single grib to the output multi grib </td></tr>
    <tr><td class="paramname">multigribid</td><td>id of the output multi filed grib </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab11428b591f9ea0ae46e5116ad9e5c7f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_grib_multi_support_off </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Turn off the support for multiple fields in a single message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a69d578039c073e637d727078778ca3ef"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_grib_multi_support_on </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Turn on the support for multiple fields in a single message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa1ef915b62ebf910254f05cb619c0168"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_grib_multi_write </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>multigribid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write a multi field message to a file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">multigribid</td><td>id of the multi field grib loaded in memory </td></tr>
    <tr><td class="paramname">ifile</td><td>file id of a file opened with <a class="el" href="classeccodes.html#a28594e26f2f4b92b9c60e943dd8e1be3">codes_open_file</a> </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7a21cb68f0d5058a63a4ba92a938fd27"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_grib_new_from_file </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out)&#160;</td>
          <td class="paramname"><em>gribid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load in memory a GRIB message from a file. </p>
<p>The message can be accessed through its gribid and it will be available<br/>
 until <a class="el" href="classeccodes.html#a1c0ab28b0ae33f04d267d794a8bdd4b7">codes_release</a> is called.<br/>
 <b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_get_keys" target="_blank">grib_get_keys.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the file opened with <a class="el" href="classeccodes.html#a28594e26f2f4b92b9c60e943dd8e1be3">codes_open_file</a> </td></tr>
    <tr><td class="paramname">gribid</td><td>id of the GRIB loaded in memory </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, CODES_END_OF_FILE at the end of file, or error code </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="acfc477ba642e007ec55c7e4ce2c31a9d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_grib_new_from_samples </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(out)&#160;</td>
          <td class="paramname"><em>gribid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>samplename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new valid gribid from a GRIB sample contained in a samples directory pointed by the environment variable ECCODES_SAMPLES_PATH. </p>
<p>To know where the samples directory is run the codes_info tool.<br/>
 In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_samples" target="_blank">grib_samples.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gribid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">samplename</td><td>name of the sample to be used </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="acb69eeef59ba780c62d7f600915aa986"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_gribex_mode_off </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Turn off the compatibility mode with GRIBEX. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa8e36bbbe3caddac4ad7d8bcdfa3cd28"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_gribex_mode_on </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Turn on the compatibility mode with gribex. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af89d3c57b15bdbd00241358a10b836a8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_index_add_file </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a file to an index. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_index" target="_blank">grib_index.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of the index I want to add a file to </td></tr>
    <tr><td class="paramname">filename</td><td>name of the file I want to add to the index </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5f52ecf1abe0a68a32517fe2a0d08058"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_index_create </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(inout)&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>keys</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new index form a file. </p>
<p>The file is indexed with the keys in argument.</p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_index" target="_blank">grib_index.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of the newly created index </td></tr>
    <tr><td class="paramname">filename</td><td>name of the file of messages to be indexed </td></tr>
    <tr><td class="paramname">keys</td><td>comma separated list of keys for the index. The type of the key can be explicitly declared appending :l for long (or alternatively :i), :d for double, :s for string to the key name. If the type is not declared explicitly, the native type is assumed. </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a26cf731cfda4b350500d8520ea674341"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_index_get_int </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>values</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the distinct values of the key in argument contained in the index. </p>
<p>The key must belong to the index. This function is used when the type of the key was explicitly defined as long or when the native type of the key is long.</p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_index" target="_blank">grib_index.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. The index must have been created with the key in argument. </td></tr>
    <tr><td class="paramname">key</td><td>key for wich the values are returned </td></tr>
    <tr><td class="paramname">values</td><td>array of values. The array must be allocated before entering this function and its size must be enough to contain all the values. </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="afa9bf87d988de7eb04a9de9982e6112f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_index_get_long </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindoflong), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>values</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the distinct values of the key in argument contained in the index. </p>
<p>The key must belong to the index. This function is used when the type of the key was explicitly defined as long or when the native type of the key is long.</p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_index" target="_blank">grib_index.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. The index must have been created with the key in argument. </td></tr>
    <tr><td class="paramname">key</td><td>key for wich the values are returned </td></tr>
    <tr><td class="paramname">values</td><td>array of values. The array must be allocated before entering this function and its size must be enough to contain all the values. </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aedc38b28a7a27b5e042f7a5a17c73001"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_index_get_real8 </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind=kindofdouble), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>values</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the distinct values of the key in argument contained in the index. </p>
<p>The key must belong to the index. This function is used when the type of the key was explicitly defined as long or when the native type of the key is long.</p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_index" target="_blank">grib_index.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. The index must have been created with the key in argument. </td></tr>
    <tr><td class="paramname">key</td><td>key for wich the values are returned </td></tr>
    <tr><td class="paramname">values</td><td>array of values. The array must be allocated before entering this function and its size must be enough to contain all the values. </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aeb1c3a999e4726895a94acb9b0de518c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_index_get_size_int </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out)&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the number of distinct values of the key in argument contained in the index. </p>
<p>The key must belong to the index.</p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_index" target="_blank">grib_index.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. The index must have been created with the key in argument. </td></tr>
    <tr><td class="paramname">key</td><td>key for which the number of values is computed </td></tr>
    <tr><td class="paramname">size</td><td>number of distinct values of the key in the index </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0d2104143f36bdfb5c7cccb9b56ae3f0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_index_get_size_long </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindoflong), intent(out)&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the number of distinct values of the key in argument contained in the index. </p>
<p>The key must belong to the index.</p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_index" target="_blank">grib_index.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. The index must have been created with the key in argument. </td></tr>
    <tr><td class="paramname">key</td><td>key for which the number of values is computed </td></tr>
    <tr><td class="paramname">size</td><td>number of distinct values of the key in the index </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae5eb8fbe2de7d547bc92baddaf77adf1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_index_get_string </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>values</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the distinct values of the key in argument contained in the index. </p>
<p>The key must belong to the index. This function is used when the type of the key was explicitly defined as string or when the native type of the key is string.</p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_index" target="_blank">grib_index.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. The index must have been created with the key in argument. </td></tr>
    <tr><td class="paramname">key</td><td>key for wich the values are returned </td></tr>
    <tr><td class="paramname">values</td><td>array of values. The array must be allocated before entering this function and its size must be enough to contain all the values. </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a16dfcaea7b7c6c77794914d0570f5bc9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_index_read </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(inout)&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load an index file previously created with <a class="el" href="classeccodes.html#afd0c12a42f60fe16eabc8b0fca41ff05">codes_index_write</a>. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_index" target="_blank">grib_index.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of loaded index </td></tr>
    <tr><td class="paramname">filename</td><td>name of the index file to load </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8fba1de775308d8a1f0c035c51e3a42d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_index_release </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Delete the index. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac84dca14749c6c8f7b1b32dbcb8c8f88"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_index_select_int </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Select the message subset with key==value. </p>
<p>The value is a integer. The key must have been created with integer type or have integer as native type if the type was not explicitly defined in the index creation.</p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_index" target="_blank">grib_index.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. The index must have been created with the key in argument. </td></tr>
    <tr><td class="paramname">key</td><td>key to be selected </td></tr>
    <tr><td class="paramname">value</td><td>value of the key to select </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6acd94d169fc462c5babb5d654c07612"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_index_select_long </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindoflong), intent(in)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Select the message subset with key==value. </p>
<p>The value is a integer. The key must have been created with integer type or have integer as native type if the type was not explicitly defined in the index creation.</p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_index" target="_blank">grib_index.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. The index must have been created with the key in argument. </td></tr>
    <tr><td class="paramname">key</td><td>key to be selected </td></tr>
    <tr><td class="paramname">value</td><td>value of the key to select </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae1a4e9f83a13d8ce9b046f141ee990cd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_index_select_real8 </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind=kindofdouble), intent(in)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Select the message subset with key==value. </p>
<p>The value is a real. The key must have been created with real type or have real as native type if the type was not explicitly defined in the index creation.</p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_index" target="_blank">grib_index.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. The index must have been created with the key in argument. </td></tr>
    <tr><td class="paramname">key</td><td>key to be selected </td></tr>
    <tr><td class="paramname">value</td><td>value of the key to select </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a500fe1c101af888362bb60a94c68085e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_index_select_string </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Select the message subset with key==value. </p>
<p>The value is a integer. The key must have been created with string type or have string as native type if the type was not explicitly defined in the index creation.</p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_index" target="_blank">grib_index.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. The index must have been created with the key in argument. </td></tr>
    <tr><td class="paramname">key</td><td>key to be selected </td></tr>
    <tr><td class="paramname">value</td><td>value of the key to select </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="afd0c12a42f60fe16eabc8b0fca41ff05"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_index_write </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(inout)&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Saves an index to a file for later reuse. </p>
<p>Index files can be read with <a class="el" href="classeccodes.html#a16dfcaea7b7c6c77794914d0570f5bc9">codes_index_read</a>.</p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_index" target="_blank">grib_index.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of the index to save to file </td></tr>
    <tr><td class="paramname">filename</td><td>name of file to save the index to </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a4aeb717b8aba0e2898a83d56363bab98"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_is_defined </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind = kindofint), intent(out)&#160;</td>
          <td class="paramname"><em>is_defined</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check if a key is defined (exists in the message) </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">is_defined</td><td>0-&gt;not defined, 1-&gt;defined </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aff0e850cce3105f72b76a603e104cce4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_is_missing </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind = kindofint), intent(out)&#160;</td>
          <td class="paramname"><em>is_missing</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check if the value of a key is MISSING. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">is_missing</td><td>0-&gt;not missing, 1-&gt;missing </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5d81274245d3a60ab85d657aa11512e5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_keys_iterator_delete </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>iterid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Delete a keys iterator and free memory. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iterid</td><td>keys iterator id created with <a class="el" href="classeccodes.html#ae9e9bae052da5148e4a0ca85f31c69b5">codes_keys_iterator_new</a> </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a695b7f3f87bfb465908447ce51024221"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_keys_iterator_get_name </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>iterid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(out)&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the name of a key from a keys iterator. </p>
<p>If the status parameter (optional) is not given the program will exit with an error message<br/>
 otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.<br/>
 </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iterid</td><td>keys iterator id created with <a class="el" href="classeccodes.html#ae9e9bae052da5148e4a0ca85f31c69b5">codes_keys_iterator_new</a> </td></tr>
    <tr><td class="paramname">name</td><td>key name to be retrieved </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae9e9bae052da5148e4a0ca85f31c69b5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_keys_iterator_new </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(inout)&#160;</td>
          <td class="paramname"><em>iterid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>namespace</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new iterator on the keys. </p>
<p>The keys iterator can be navigated to give all the key names which can then be used to get or set the key values with <a class="el" href="interfaceeccodes_1_1codes__get.html">codes_get</a> or <a class="el" href="interfaceeccodes_1_1codes__set.html">codes_set</a>. The set of keys returned can be controlled with the input variable namespace or using the functions <a class="el" href="classeccodes.html#aa7f01fdbea67a38997eff86255397181">codes_skip_read_only</a>, <a class="el" href="classeccodes.html#a2f23dd14b726d10d92637719dda7753b">codes_skip_duplicates</a>, <a class="el" href="classeccodes.html#a56a1567687b281d07c193ce273c0e1b2">codes_skip_coded</a>,<a class="el" href="classeccodes.html#aad63202303a1b6aaf9f5e605622a8095">codes_skip_computed</a>. If namespace is a non-empty string only the keys belonging to that namespace are returned. Example namespaces are "ls" (to get the same default keys as the grib_ls) and "mars" to get the keys used by mars.</p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">iterid</td><td>keys iterator id to be used in the keys iterator functions </td></tr>
    <tr><td class="paramname">namespace</td><td>the namespace of the keys to search for (all the keys if empty) </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aaaa40acb7f8e05783e106c32a541a66d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_keys_iterator_next </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>iterid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Advance to the next keys iterator value. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iterid</td><td>keys iterator id created with <a class="el" href="classeccodes.html#ae9e9bae052da5148e4a0ca85f31c69b5">codes_keys_iterator_new</a> </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if next iterator exists, integer value if no more elements to iterate on </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa6055f116c22830fc941b6db2e133d25"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_keys_iterator_rewind </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>iterid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Rewind a keys iterator. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iterid</td><td>keys iterator id created with <a class="el" href="classeccodes.html#ae9e9bae052da5148e4a0ca85f31c69b5">codes_keys_iterator_new</a> </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5533c6fb8bd7d8f622c89484b7bbdfb6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_new_from_file </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>product_kind</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load in memory a message from a file. </p>
<p>The message can be accessed through its message ID and it will be available<br/>
 until <a class="el" href="classeccodes.html#a1c0ab28b0ae33f04d267d794a8bdd4b7">codes_release</a> is called.<br/>
 <b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_get_keys" target="_blank">grib_get_keys.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the file opened with <a class="el" href="classeccodes.html#a28594e26f2f4b92b9c60e943dd8e1be3">codes_open_file</a> </td></tr>
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">product_kind</td><td>One of CODES_PRODUCT_GRIB, CODES_PRODUCT_BUFR or CODES_PRODUCT_ANY </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, CODES_END_OF_FILE at the end of file, or error code </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2852e5519e2ff8596e461986b99092d7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_new_from_index </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new handle from an index after having selected the key values. </p>
<p>All the keys belonging to the index must be selected before calling this function. Successive calls to this function will return all the handles compatible with the constraints defined selecting the values of the index keys. When no more handles are available from the index a NULL pointer is returned and the err variable is set to CODES_END_OF_INDEX.</p>
<p>The message can be accessed through its msgid and it will be available<br/>
 until <a class="el" href="classeccodes.html#a1c0ab28b0ae33f04d267d794a8bdd4b7">codes_release</a> is called.<br/>
 <b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_index" target="_blank">grib_index.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. </td></tr>
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, CODES_END_OF_FILE at the end of file, or error code </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9734463b78e04c3e803acb25d3314436"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_new_from_message_char </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(out)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=1), dimension(:), intent(in)&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new message in memory from a character array containting the coded message. </p>
<p>The message can be accessed through its msgid and it will be available<br/>
 until <a class="el" href="classeccodes.html#a1c0ab28b0ae33f04d267d794a8bdd4b7">codes_release</a> is called. A reference to the original coded<br/>
 message is kept in the new message structure.</p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_copy_message" target="_blank">grib_copy_message.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">message</td><td>character array containing the coded message </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af9d90d4940f54ecebb44acb69a59d496"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_new_from_message_int4 </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(out)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=4), dimension(:), intent(in)&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new message in memory from an integer array containting the coded message. </p>
<p>The message can be accessed through its msgid and it will be available<br/>
 until <a class="el" href="classeccodes.html#a1c0ab28b0ae33f04d267d794a8bdd4b7">codes_release</a> is called. A reference to the original coded<br/>
 message is kept in the new message structure.</p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_copy_message" target="_blank">grib_copy_message.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">message</td><td>integer array containing the coded message </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a28594e26f2f4b92b9c60e943dd8e1be3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_open_file </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(out)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>mode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Open a file according to a mode. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_get_keys" target="_blank">grib_get_keys.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">filename</td><td>name of the file to be open </td></tr>
    <tr><td class="paramname">mode</td><td>open mode can be 'r' (read only), 'w' (write only) or 'a' (append) </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a30dcd3a6d9d4b084f1dc9d617927b99a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_read_bytes_char </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=1), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads nbytes bytes into the buffer from a file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>binary buffer to be read </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be read </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aea71591e62a4a6f42682ceb5979c0631"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_read_bytes_char_size_t </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=1), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofsize_t), intent(in)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads nbytes bytes into the buffer from a file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>binary buffer to be read </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be read </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0b75e479138c6fe2b49cacef123a1c8e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_read_bytes_int4 </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=4), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads nbytes bytes into the buffer from a file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>buffer to be read </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be read </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad1be70ac4cc7c2c5775e3bc6b607c4df"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_read_bytes_int4_size_t </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=4), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofsize_t), intent(in)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads nbytes bytes into the buffer from a file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>buffer to be read </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be read </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a19f70122369224f1ef3513bf7f351e86"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_read_bytes_real4 </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind=4), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads nbytes bytes into the buffer from a file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>buffer to be read </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be read </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9bac4f78f245e52303e85d2ee142d073"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_read_bytes_real4_size_t </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind=4), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofsize_t), intent(inout)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads nbytes bytes into the buffer from a file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>buffer to be read </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be read </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a4e1e0bb73d3fafe62685a3f7191334e4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_read_bytes_real8 </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind=8), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads nbytes bytes into the buffer from a file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>buffer to be read </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be read </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="adec76dd3ecf49b71ded2545054828c3d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_read_bytes_real8_size_t </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind=8), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofsize_t), intent(inout)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads nbytes bytes into the buffer from a file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>buffer to be read </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be read </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab84434f52a4a41e68bf3103c392482ae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_read_from_file_char </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=1), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(inout)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads a message in the buffer array from the file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>buffer to be read </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be read </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9ca8b8009071657b338508a3d6709b8d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_read_from_file_char_size_t </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=1), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofsize_t), intent(inout)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads a message in the buffer array from the file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>buffer to be read </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be read </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7b5b61cc34b32aae4c3f2deeacbc50ae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_read_from_file_int4 </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=4), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(inout)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads a message in the buffer array from the file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>binary buffer to be read </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be read </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa04bacd625a2a87d7e490c0361643da3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_read_from_file_int4_size_t </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=4), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofsize_t), intent(inout)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads a message in the buffer array from the file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>binary buffer to be read </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be read </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa4182b2add068f538b335c8efd1a8d5f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_read_from_file_real4 </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind=4), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(inout)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads a message in the buffer array from the file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>binary buffer to be read </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be read </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae866f7aa5270100094390b465e953975"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_read_from_file_real4_size_t </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind=4), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofsize_t), intent(inout)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads a message in the buffer array from the file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>binary buffer to be read </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be read </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2ff542236ca5d1bdeb7192c5c8eca94f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_read_from_file_real8 </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind=8), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(inout)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads a message in the buffer array from the file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>binary buffer to be read </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be read </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab8fff9495aaf984fb909367290b45591"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_read_from_file_real8_size_t </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind=8), dimension(:), intent(out)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofsize_t), intent(inout)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads a message in the buffer array from the file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>binary buffer to be read </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be read </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1c0ab28b0ae33f04d267d794a8bdd4b7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_release </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Free the memory for the message referred as msgid. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_get_keys" target="_blank">grib_get_keys.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a292d71c0a7252bdfded6a38aea4284be"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_set_byte_array </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=1), dimension(:), intent(in)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the array of bytes (character) for a key in a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>character(len=1) array of byte values </td></tr>
    <tr><td class="paramname">length</td><td>(optional) output: number of values written </td></tr>
    <tr><td class="paramname">status</td><td>(optional) CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8544407e16786d6d72df0fc3cc37ff3a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_set_definitions_path </td>
          <td>(</td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the definition path. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>definitions path </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac060bb983b9e515db8ad7edd3d91ce9a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_set_int </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the integer value for a key in a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>integer(4) value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a18b5890c85f15d5fefeefc2b99a09ce5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_set_int_array </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), dimension(:), intent(in)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the integers values for an array key in a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>integer(4) array value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3c9cdc65f00b3c36742206e6e3dde864"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_set_long </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindoflong), intent(in)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the integer value for a key in a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>integer(4) value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5fa893fca21268a9c12d93e9d8c664e3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_set_long_array </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindoflong), dimension(:), intent(in)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the integers values for an array key in a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>integer(4) array value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa85273eb59a545d73f7e3a48516fd5f9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_set_missing </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Wrapper for eccodes. </p>
<p>Set as missing the value for a key in a message.</p>
<p>It can be used to set a missing value in the header but not in <br/>
 the data values. To set missing data values see the bitmap examples.<br/>
 In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p><b>Examples:</b> <a href="https://software.ecmwf.int/wiki/display/ECC/grib_set_missing" target="_blank">grib_set_missing.f90</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">id</td><td>ID of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2614a1e015c16370ed18cc360a14663e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_set_real4 </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindoffloat), intent(in)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the real(4) value for a key in a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>real(4) value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aabaefc49c8d603bcf18a627dacc38f15"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_set_real4_array </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindoffloat), dimension(:), intent(in)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the real(4) values for an array key in a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>real(4) array value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a4b20fe82de5ba6f8355ff8a5d2725b3d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_set_real8 </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), intent(in)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the real(8) value for a key in a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>real(8) value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a14b3bc17ea1ee83936f32dd0fced44a4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_set_real8_array </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind = kindofdouble), dimension(:), intent(in)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the real(8) values for an array key in a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>real(8) array value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af4be467f3273e17111becbd483c25018"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_set_samples_path </td>
          <td>(</td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the samples path. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>samples path </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a50acfd20f8dff8b4e547135057ef119a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_set_string </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>*/ </p>
<p>Set the character value for a string key in a message.</p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>character value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aae3ccb53638a4d16daf98d937a96e8b6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_set_string_array </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), intent(in)&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=*), dimension(:), intent(in), allocatable&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the string values for an array key in a message. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>string array value </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a56a1567687b281d07c193ce273c0e1b2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_skip_coded </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>iterid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Skip the coded keys in a keys iterator. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<p>The coded keys are actually coded in the message.</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classeccodes.html#ae9e9bae052da5148e4a0ca85f31c69b5" title="Create a new iterator on the keys. ">codes_keys_iterator_new</a>, <a class="el" href="classeccodes.html#aaaa40acb7f8e05783e106c32a541a66d" title="Advance to the next keys iterator value. ">codes_keys_iterator_next</a>, <a class="el" href="classeccodes.html#a5d81274245d3a60ab85d657aa11512e5" title="Delete a keys iterator and free memory. ">codes_keys_iterator_delete</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iterid</td><td>keys iterator id </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aad63202303a1b6aaf9f5e605622a8095"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_skip_computed </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>iterid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Skip the computed keys in a keys iterator. </p>
<p>The computed keys are not coded in the message they are computed from other keys.</p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classeccodes.html#ae9e9bae052da5148e4a0ca85f31c69b5" title="Create a new iterator on the keys. ">codes_keys_iterator_new</a>, <a class="el" href="classeccodes.html#aaaa40acb7f8e05783e106c32a541a66d" title="Advance to the next keys iterator value. ">codes_keys_iterator_next</a>, <a class="el" href="classeccodes.html#a5d81274245d3a60ab85d657aa11512e5" title="Delete a keys iterator and free memory. ">codes_keys_iterator_delete</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iterid</td><td>keys iterator id </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2f23dd14b726d10d92637719dda7753b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_skip_duplicates </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>iterid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Skip the duplicated keys in a keys iterator. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classeccodes.html#ae9e9bae052da5148e4a0ca85f31c69b5" title="Create a new iterator on the keys. ">codes_keys_iterator_new</a>, <a class="el" href="classeccodes.html#aaaa40acb7f8e05783e106c32a541a66d" title="Advance to the next keys iterator value. ">codes_keys_iterator_next</a>, <a class="el" href="classeccodes.html#a5d81274245d3a60ab85d657aa11512e5" title="Delete a keys iterator and free memory. ">codes_keys_iterator_delete</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iterid</td><td>keys iterator id </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa7f01fdbea67a38997eff86255397181"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_skip_read_only </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>iterid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Skip the read_only keys in a keys iterator. </p>
<p>Read only keys cannot be set.</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classeccodes.html#ae9e9bae052da5148e4a0ca85f31c69b5" title="Create a new iterator on the keys. ">codes_keys_iterator_new</a>, <a class="el" href="classeccodes.html#aaaa40acb7f8e05783e106c32a541a66d" title="Advance to the next keys iterator value. ">codes_keys_iterator_next</a>, <a class="el" href="classeccodes.html#a5d81274245d3a60ab85d657aa11512e5" title="Delete a keys iterator and free memory. ">codes_keys_iterator_delete</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iterid</td><td>keys iterator id </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad91213a6e3ee312c50dba0cdbf2bc55d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_write </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write the coded message to a file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">ifile</td><td>file id of a file opened with <a class="el" href="classeccodes.html#a28594e26f2f4b92b9c60e943dd8e1be3">codes_open_file</a> </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="acdb3a889fbd731811821d95d6126e41a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_write_bytes_char </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=1), dimension(:), intent(in)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write nbytes bytes from the buffer in a file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>buffer to be written </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be written </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a02dd901fef7e6a4cb8ab50ade61e6a66"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_write_bytes_char_size_t </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">character(len=1), dimension(:), intent(in)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofsize_t), intent(in)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write nbytes bytes from the buffer in a file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>buffer to be written </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be written </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="abe46cbe07d6a64845bf07e21caa3ae94"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_write_bytes_int4 </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=4), dimension(:), intent(in)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write nbytes bytes from the buffer in a file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>buffer to be written </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be written </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a771149b4e451839ed7713540de92ce27"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_write_bytes_int4_size_t </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=4), dimension(:), intent(in)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofsize_t), intent(in)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write nbytes bytes from the buffer in a file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>buffer to be written </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be written </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7f69c7e70900ace352970851a4ee5267"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_write_bytes_real4 </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind=4), dimension(:), intent(in)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write nbytes bytes from the buffer in a file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>buffer to be written </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be written </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7467f8b7c399f5579bd4be244de100dc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_write_bytes_real4_size_t </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind=4), dimension(:), intent(in)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofsize_t), intent(in)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write nbytes bytes from the buffer in a file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>buffer to be written </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be written </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aabda087d7f8ba266b0b9f307270f876a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_write_bytes_real8 </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind=8), dimension(:), intent(in)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write nbytes bytes from the buffer in a file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>buffer to be written </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be written </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2d0be96a6b529f7e0b8079318a5376bb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">subroutine codes_write_bytes_real8_size_t </td>
          <td>(</td>
          <td class="paramtype">integer(kind=kindofint), intent(in)&#160;</td>
          <td class="paramname"><em>ifile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">real(kind=8), dimension(:), intent(in)&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofsize_t), intent(in)&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">integer(kind=kindofint), intent(out), optional&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write nbytes bytes from the buffer in a file opened with codes_open_file. </p>
<p>In case of error, if the status parameter (optional) is not given, the program will exit with an error message.<br/>
 Otherwise the error message can be gathered with <a class="el" href="classeccodes.html#a835de867b8ad79cc43f127e7048712f3">codes_get_error_string</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ifile</td><td>id of the opened file to be used in all the file functions. </td></tr>
    <tr><td class="paramname">buffer</td><td>buffer to be written </td></tr>
    <tr><td class="paramname">nbytes</td><td>number of bytes to be written </td></tr>
    <tr><td class="paramname">status</td><td>CODES_SUCCESS if OK, integer value on error </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this module was generated from the following file:<ul>
<li>eccodes_f90.f90</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>
